package net.nandleon.AgenceVoyage.client.panier;


import net.nandleon.AgenceVoyage.client.event.EventBus;
import net.nandleon.AgenceVoyage.client.event.dataEvent.DataEvent;
import net.nandleon.AgenceVoyage.client.event.itemEvent.ItemPanierDeleteEvent;
import net.nandleon.AgenceVoyage.client.event.itemEvent.ItemPanierDeleteHandler;
import net.nandleon.AgenceVoyage.client.panier.itemPanier.ItemPanier;
import net.nandleon.AgenceVoyage.client.ressources.Ressources;
import net.nandleon.AgenceVoyage.shared.ElementPanier;
import net.nandleon.AgenceVoyage.shared.Panier;

import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Widget;


public class PanierView extends Composite implements ItemPanierDeleteHandler{

	private static final Binder binder = GWT.create(Binder.class);

	interface Binder extends UiBinder<Widget, PanierView> {
	}

	static {
		Ressources.INSTANCE.uiPanierStyle().ensureInjected();
	}
	
	
	@UiField
	FlexTable recapitulatifCommande;
	
	Panier monPanier;
	
	public PanierView(Panier monPanier){
		initWidget(binder.createAndBindUi(this));
		this.monPanier = monPanier;
		
		EventBus.bus.addHandler(ItemPanierDeleteEvent.TYPE, this);
		
		for(int i = 0 ; i < monPanier.getNbArticles() ; i++){

			recapitulatifCommande.setWidget(i, 0,new ItemPanier(monPanier.getElementPanier(i)) );
		
		}
		
	}


	@Override
	public void onItemDeleted(ItemPanierDeleteEvent event) {
		monPanier.delElement(event.getItemPanierToDelete().getElementPanierAssocie());
		recapitulatifCommande.remove(event.getItemPanierToDelete());
		
		DataEvent eventData = new DataEvent();
		eventData.setElementPanier(null);
    	EventBus.bus.fireEvent(eventData);
	}


	
	


}
